#ifndef __NONCOPYABLE__
#define __NONCOPYABLE__

//禁止复制
//1、将拷贝构造函数与赋值运算符函数设置为私有的
//2、将拷贝构造函数与赋值运算符函数设置=delete
//3、将基类拷贝构造函数与赋值运算符函数设置私有的或者=delete
//派生类再继承基类

//抽象类的第二种使用形式
class NonCopyable
{
/* public: */
protected:
    NonCopyable() {}
    ~NonCopyable() {}

    NonCopyable(const NonCopyable &rhs) = delete;
    NonCopyable &operator=(const NonCopyable &rhs) = delete;
};

#endif
